#!/bin/bash
###############################################################################
# @用例ID: 20230528-143514-552759075
# @用例名称: coreutils_test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件:系统正常运行，且已安装 coreutils
    assert_true yum install -y coreutils

    # @预置条件:
    return 0
}

do_test() {
    msg "this is do_test"

    # 创建一个临时目录
    tmpdir="$(mktemp -d)"

    # 在临时目录中创建一些文件和目录
    mkdir "${tmpdir}/dir1"
    echo "This is file1" > "${tmpdir}/dir1/file1.txt"
    mkdir "${tmpdir}/dir2"
    echo "This is file2" > "${tmpdir}/dir2/file2.txt"

    # @测试步骤:1 使用 cp 命令复制文件
    # @预期结果:1 确保成功复制文件到目标位置
    assert_true cp "${tmpdir}/dir1/file1.txt" "${tmpdir}/dir2/file1_copy.txt"

    # 验证目标文件是否复制成功
    assert_true [ -f "${tmpdir}/dir2/file1_copy.txt" ]

    # @测试步骤:2 使用 mv 命令移动文件
    # @预期结果:2 确保成功移动文件到目标位置
    assert_true mv "${tmpdir}/dir2/file2.txt" "${tmpdir}/dir1/file2_moved.txt"

    # 验证源文件是否成功移动，并目标位置是否存在相应的文件
    assert_true [ ! -f "${tmpdir}/dir2/file2.txt" ]
    assert_true [ -f "${tmpdir}/dir1/file2_moved.txt" ]

    # @测试步骤:3 使用 rm 命令删除文件
    # @预期结果:3 确保成功删除文件
    assert_true rm "${tmpdir}/dir1/file1.txt"

    # 验证文件是否成功删除
    assert_true [ ! -f "${tmpdir}/dir1/file1.txt" ]

    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    # 清理临时目录
    assert_true rm -rf "${tmpdir}"

    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
